package br.ufpb.di.knowledgetv.classificador;

import br.ufpb.di.knowledgetv.util.Util;
import weka.core.Attribute;
import weka.core.FastVector;

public class CriadorDeAtributos {
	
	private static FastVector attributes;
	
	private static void createInstance(){
		
		FastVector sexoNominal = new FastVector( Util.sexos.length );
		for( String s: Util.sexos )
			sexoNominal.addElement(s);
		
		FastVector escolaridadeNominal = new FastVector( Util.escolaridades.length );
		for( String s: Util.escolaridades )
			escolaridadeNominal.addElement(s);
		
		FastVector estadoCivilNominal = new FastVector( Util.estadosCivis.length );
		for( String s: Util.estadosCivis )
			estadoCivilNominal.addElement(s);
		
		FastVector faixaEtariaNominal = new FastVector( Util.faixasEtarias.length );
		for( String s: Util.faixasEtarias )
			faixaEtariaNominal.addElement(s);
		
		FastVector numeroDeFilhosNominal = new FastVector( Util.numeroDeFilhos.length );
		for( String s: Util.numeroDeFilhos )
			numeroDeFilhosNominal.addElement(s);
		
		FastVector rendaNominal = new FastVector( Util.rendas.length );
		for( String s: Util.rendas )
			rendaNominal.addElement(s);
		
		FastVector classesNominal = new FastVector( Util.classes.length );
		for( String s: Util.classes )
			classesNominal.addElement(s);
		
		Attribute sexoAtt = new Attribute("sexoAtt", sexoNominal);
		Attribute escolaridadeAtt = new Attribute("escolaridadeAtt", escolaridadeNominal);
		Attribute estadoCivilAtt = new Attribute("estadoCivilAtt", estadoCivilNominal);
		Attribute faixaEtariaAtt = new Attribute("faixaEtariaAtt", faixaEtariaNominal);
		Attribute numeroDeFilhosAtt = new Attribute("numeroDeFilhosAtt", numeroDeFilhosNominal);
		Attribute rendaAtt = new Attribute("rendaAtt", rendaNominal);
		Attribute classesAtt = new Attribute("classesAtt", classesNominal);
		
		FastVector instance = new FastVector(7);
		instance.addElement(sexoAtt);
		instance.addElement(escolaridadeAtt);
		instance.addElement(estadoCivilAtt);
		instance.addElement(faixaEtariaAtt);
		instance.addElement(numeroDeFilhosAtt);
		instance.addElement(rendaAtt);
		instance.addElement(classesAtt);
		
		attributes = instance;
		
	}

	public static FastVector getInstance(){
		if( attributes == null )
			createInstance();
		return attributes;			
	}
	
}